package com.zjcloud.jwgl.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zjcloud.common.annotation.Excel;
import com.zjcloud.common.core.domain.BaseEntity;

/**
 * 教师学科关联对象 sc_teacher_subject
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public class ScTeacherSubject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 关联ID */
    private Long id;

    /** 教师ID */
    @Excel(name = "教师ID")
    private Long teacherId;

    /** 教师姓名 */
    @Excel(name = "教师姓名")
    private String teacherName;

    /** 学科ID */
    @Excel(name = "学科ID")
    private Long subjectId;

    /** 学科名称 */
    @Excel(name = "学科名称")
    private String subjectName;

    /** 教学能力等级(1-10) */
    @Excel(name = "教学能力等级")
    private Integer teachingLevel;

    /** 专业匹配度(1-10) */
    @Excel(name = "专业匹配度")
    private Integer professionalMatch;

    /** 教学经验年数 */
    @Excel(name = "教学经验年数")
    private Integer experienceYears;

    /** 是否主教学科(1是 0否) */
    @Excel(name = "是否主教学科", readConverterExp = "1=是,0=否")
    private String isPrimary;

    /** 教学偏好系数 */
    @Excel(name = "教学偏好系数")
    private BigDecimal preferenceCoefficient;

    /** 最大周课时 */
    @Excel(name = "最大周课时")
    private Integer maxWeeklyPeriods;

    /** 当前周课时 */
    @Excel(name = "当前周课时")
    private Integer currentWeeklyPeriods;

    /** 教学质量评分 */
    @Excel(name = "教学质量评分")
    private BigDecimal qualityScore;

    /** 学生满意度 */
    @Excel(name = "学生满意度")
    private BigDecimal studentSatisfaction;

    /** 是否可跨年级教学(1是 0否) */
    @Excel(name = "是否可跨年级教学", readConverterExp = "1=是,0=否")
    private String canCrossGrade;

    /** 适用年级范围 */
    @Excel(name = "适用年级范围")
    private String gradeRange;

    /** 认证资格 */
    @Excel(name = "认证资格")
    private String certification;

    /** 特长标签 */
    @Excel(name = "特长标签")
    private String specialtyTags;

    /** 状态(1启用 0禁用) */
    @Excel(name = "状态", readConverterExp = "1=启用,0=禁用")
    private String status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTeacherId(Long teacherId) 
    {
        this.teacherId = teacherId;
    }

    public Long getTeacherId() 
    {
        return teacherId;
    }
    public void setTeacherName(String teacherName) 
    {
        this.teacherName = teacherName;
    }

    public String getTeacherName() 
    {
        return teacherName;
    }
    public void setSubjectId(Long subjectId) 
    {
        this.subjectId = subjectId;
    }

    public Long getSubjectId() 
    {
        return subjectId;
    }
    public void setSubjectName(String subjectName) 
    {
        this.subjectName = subjectName;
    }

    public String getSubjectName() 
    {
        return subjectName;
    }
    public void setTeachingLevel(Integer teachingLevel) 
    {
        this.teachingLevel = teachingLevel;
    }

    public Integer getTeachingLevel() 
    {
        return teachingLevel;
    }
    public void setProfessionalMatch(Integer professionalMatch) 
    {
        this.professionalMatch = professionalMatch;
    }

    public Integer getProfessionalMatch() 
    {
        return professionalMatch;
    }
    public void setExperienceYears(Integer experienceYears) 
    {
        this.experienceYears = experienceYears;
    }

    public Integer getExperienceYears() 
    {
        return experienceYears;
    }
    public void setIsPrimary(String isPrimary) 
    {
        this.isPrimary = isPrimary;
    }

    public String getIsPrimary() 
    {
        return isPrimary;
    }
    public void setPreferenceCoefficient(BigDecimal preferenceCoefficient) 
    {
        this.preferenceCoefficient = preferenceCoefficient;
    }

    public BigDecimal getPreferenceCoefficient() 
    {
        return preferenceCoefficient;
    }
    public void setMaxWeeklyPeriods(Integer maxWeeklyPeriods) 
    {
        this.maxWeeklyPeriods = maxWeeklyPeriods;
    }

    public Integer getMaxWeeklyPeriods() 
    {
        return maxWeeklyPeriods;
    }
    public void setCurrentWeeklyPeriods(Integer currentWeeklyPeriods) 
    {
        this.currentWeeklyPeriods = currentWeeklyPeriods;
    }

    public Integer getCurrentWeeklyPeriods() 
    {
        return currentWeeklyPeriods;
    }
    public void setQualityScore(BigDecimal qualityScore) 
    {
        this.qualityScore = qualityScore;
    }

    public BigDecimal getQualityScore() 
    {
        return qualityScore;
    }
    public void setStudentSatisfaction(BigDecimal studentSatisfaction) 
    {
        this.studentSatisfaction = studentSatisfaction;
    }

    public BigDecimal getStudentSatisfaction() 
    {
        return studentSatisfaction;
    }
    public void setCanCrossGrade(String canCrossGrade) 
    {
        this.canCrossGrade = canCrossGrade;
    }

    public String getCanCrossGrade() 
    {
        return canCrossGrade;
    }
    public void setGradeRange(String gradeRange) 
    {
        this.gradeRange = gradeRange;
    }

    public String getGradeRange() 
    {
        return gradeRange;
    }
    public void setCertification(String certification) 
    {
        this.certification = certification;
    }

    public String getCertification() 
    {
        return certification;
    }
    public void setSpecialtyTags(String specialtyTags) 
    {
        this.specialtyTags = specialtyTags;
    }

    public String getSpecialtyTags() 
    {
        return specialtyTags;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("teacherId", getTeacherId())
            .append("teacherName", getTeacherName())
            .append("subjectId", getSubjectId())
            .append("subjectName", getSubjectName())
            .append("teachingLevel", getTeachingLevel())
            .append("professionalMatch", getProfessionalMatch())
            .append("experienceYears", getExperienceYears())
            .append("isPrimary", getIsPrimary())
            .append("preferenceCoefficient", getPreferenceCoefficient())
            .append("maxWeeklyPeriods", getMaxWeeklyPeriods())
            .append("currentWeeklyPeriods", getCurrentWeeklyPeriods())
            .append("qualityScore", getQualityScore())
            .append("studentSatisfaction", getStudentSatisfaction())
            .append("canCrossGrade", getCanCrossGrade())
            .append("gradeRange", getGradeRange())
            .append("certification", getCertification())
            .append("specialtyTags", getSpecialtyTags())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}